diff options
| author | Fuwn <[email protected]> | 2026-03-01 16:20:51 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-03-01 16:21:02 -0800 |
| commit | eae5d24d9e79e59a19d4721caaeaa0ca650ecb33 (patch) | |
| tree | 1b685bb248e051dfa26d2bfdebe6689402dd93c5 /src/routes/user/[user]/+page.svelte | |
| parent | chore(tooling): remove legacy eslint and prettier (diff) | |
| download | due.moe-eae5d24d9e79e59a19d4721caaeaa0ca650ecb33.tar.xz due.moe-eae5d24d9e79e59a19d4721caaeaa0ca650ecb33.zip | |
chore(biome): drop formatter style overrides
Diffstat (limited to 'src/routes/user/[user]/+page.svelte')
| -rw-r--r-- | src/routes/user/[user]/+page.svelte | 181 |
1 files changed, 93 insertions, 88 deletions
diff --git a/src/routes/user/[user]/+page.svelte b/src/routes/user/[user]/+page.svelte index 536d02e5..ecbc8330 100644 --- a/src/routes/user/[user]/+page.svelte +++ b/src/routes/user/[user]/+page.svelte @@ -1,35 +1,35 @@ <script lang="ts"> -import Spacer from '$lib/Layout/Spacer.svelte'; -import settings from '$stores/settings'; -import ParallaxImage from '../../../lib/Image/ParallaxImage.svelte'; -import { typeSchedule, type ParseResult } from '$lib/Hololive/hololive'; -import HeadTitle from '$lib/Home/HeadTitle.svelte'; -import Message from '$lib/Loading/Message.svelte'; -import { estimatedDayReading } from '$lib/Media/Manga/time'; -import Skeleton from '$lib/Loading/Skeleton.svelte'; -import root from '$lib/Utility/root'; -import locale from '$stores/locale'; -import { onMount } from 'svelte'; -import authorisedUsers from '$lib/Data/Static/authorised.json'; -import tooltip from '$lib/Tooltip/tooltip'; -import AnimeRateLimited from '$lib/Error/AnimeRateLimited.svelte'; -import identity from '$stores/identity'; -import SettingHint from '$lib/Settings/SettingHint.svelte'; -import proxy from '$lib/Utility/proxy'; -import { parseScheduleHtml } from '$lib/Data/hololive'; -import type { Preferences } from '../../../graphql/$types'; -import SvelteMarkdown from '@humanspeak/svelte-markdown'; -import MarkdownLink from '$lib/MarkdownLink.svelte'; -import LinkedTooltip from '$lib/Tooltip/LinkedTooltip.svelte'; -import { graphql } from '$houdini'; -import type { PageData } from './$types'; +import Spacer from "$lib/Layout/Spacer.svelte"; +import settings from "$stores/settings"; +import ParallaxImage from "../../../lib/Image/ParallaxImage.svelte"; +import { typeSchedule, type ParseResult } from "$lib/Hololive/hololive"; +import HeadTitle from "$lib/Home/HeadTitle.svelte"; +import Message from "$lib/Loading/Message.svelte"; +import { estimatedDayReading } from "$lib/Media/Manga/time"; +import Skeleton from "$lib/Loading/Skeleton.svelte"; +import root from "$lib/Utility/root"; +import locale from "$stores/locale"; +import { onMount } from "svelte"; +import authorisedUsers from "$lib/Data/Static/authorised.json"; +import tooltip from "$lib/Tooltip/tooltip"; +import AnimeRateLimited from "$lib/Error/AnimeRateLimited.svelte"; +import identity from "$stores/identity"; +import SettingHint from "$lib/Settings/SettingHint.svelte"; +import proxy from "$lib/Utility/proxy"; +import { parseScheduleHtml } from "$lib/Data/hololive"; +import type { Preferences } from "../../../graphql/$types"; +import SvelteMarkdown from "@humanspeak/svelte-markdown"; +import MarkdownLink from "$lib/MarkdownLink.svelte"; +import LinkedTooltip from "$lib/Tooltip/LinkedTooltip.svelte"; +import { graphql } from "$houdini"; +import type { PageData } from "./$types"; export let data: PageData; $: ({ Profile } = data); $: preferences = $Profile.fetching - ? undefined - : ($Profile.data?.User?.preferences as Preferences | undefined); + ? undefined + : ($Profile.data?.User?.preferences as Preferences | undefined); const setCategoriesQuery = graphql(` mutation SetCategories($categories: [String!]!) { @@ -111,110 +111,115 @@ let draggedCategory: string | null = null; let draggedOverCategory: string | null = null; $: displayBadges = (username: string, badges: number | string) => - $locale({ - values: { - badges: badges, - username - } - }).user.profile.badges; + $locale({ + values: { + badges: badges, + username, + }, + }).user.profile.badges; const handleDragStart = ( - event: DragEvent & { currentTarget: EventTarget & HTMLDivElement }, - category: string | null + event: DragEvent & { currentTarget: EventTarget & HTMLDivElement }, + category: string | null, ) => { - draggedCategory = category; + draggedCategory = category; - if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move'; + if (event.dataTransfer) event.dataTransfer.effectAllowed = "move"; }; const handleDragOver = (event: DragEvent) => { - event.preventDefault(); + event.preventDefault(); - if (event.dataTransfer) event.dataTransfer.dropEffect = 'move'; + if (event.dataTransfer) event.dataTransfer.dropEffect = "move"; }; const handleDragEnter = ( - event: DragEvent & { currentTarget: EventTarget & HTMLDivElement }, - category: string | null + event: DragEvent & { currentTarget: EventTarget & HTMLDivElement }, + category: string | null, ) => { - event.preventDefault(); + event.preventDefault(); - if (draggedCategory !== category && preferences && draggedCategory) { - draggedOverCategory = category; + if (draggedCategory !== category && preferences && draggedCategory) { + draggedOverCategory = category; - const categories = preferences.pinned_badge_wall_categories; - const draggedIndex = categories.indexOf(draggedCategory); - const targetIndex = categories.indexOf(category || ''); + const categories = preferences.pinned_badge_wall_categories; + const draggedIndex = categories.indexOf(draggedCategory); + const targetIndex = categories.indexOf(category || ""); - categories.splice(draggedIndex, 1); - categories.splice(targetIndex, 0, draggedCategory); + categories.splice(draggedIndex, 1); + categories.splice(targetIndex, 0, draggedCategory); - preferences.pinned_badge_wall_categories = categories; - } + preferences.pinned_badge_wall_categories = categories; + } }; const handleDragLeave = ( - event: DragEvent & { currentTarget: EventTarget & HTMLDivElement }, - category: string + event: DragEvent & { currentTarget: EventTarget & HTMLDivElement }, + category: string, ) => { - event.preventDefault(); + event.preventDefault(); - if (draggedOverCategory === category && preferences && draggedCategory) { - draggedOverCategory = null; + if (draggedOverCategory === category && preferences && draggedCategory) { + draggedOverCategory = null; - const categories = preferences.pinned_badge_wall_categories; - const draggedIndex = categories.indexOf(draggedCategory); + const categories = preferences.pinned_badge_wall_categories; + const draggedIndex = categories.indexOf(draggedCategory); - categories.splice(draggedIndex, 1); - categories.splice(categories.indexOf(category) + 1, 0, draggedCategory); + categories.splice(draggedIndex, 1); + categories.splice(categories.indexOf(category) + 1, 0, draggedCategory); - preferences.pinned_badge_wall_categories = categories; - } + preferences.pinned_badge_wall_categories = categories; + } }; const handleDrop = (event: { preventDefault: () => void }) => { - event.preventDefault(); + event.preventDefault(); - if (userData && preferences) - setCategoriesQuery - .mutate({ - categories: preferences.pinned_badge_wall_categories - }) - .then(); + if (userData && preferences) + setCategoriesQuery + .mutate({ + categories: preferences.pinned_badge_wall_categories, + }) + .then(); - draggedCategory = null; - draggedOverCategory = null; + draggedCategory = null; + draggedOverCategory = null; }; onMount(async () => { - schedule = typeSchedule( - parseScheduleHtml( - await ( - await fetch(proxy('https://schedule.hololive.tv'), { - headers: { - Cookie: 'timezone=Asia/Tokyo' - } - }) - ).text() - ) - ); + schedule = typeSchedule( + parseScheduleHtml( + await ( + await fetch(proxy("https://schedule.hololive.tv"), { + headers: { + Cookie: "timezone=Asia/Tokyo", + }, + }) + ).text(), + ), + ); }); const getBadgeWallCSS = () => - (document.getElementById('badgeWallCSS') as HTMLTextAreaElement).value; + (document.getElementById("badgeWallCSS") as HTMLTextAreaElement).value; const getBiography = () => - (document.getElementById('biography') as HTMLTextAreaElement).value.slice(0, 3000); + (document.getElementById("biography") as HTMLTextAreaElement).value.slice( + 0, + 3000, + ); const toggleCategory = () => { - if (!userData) return; + if (!userData) return; - const categoryElement = document.getElementById('category') as HTMLInputElement; - const category = categoryElement.value; + const categoryElement = document.getElementById( + "category", + ) as HTMLInputElement; + const category = categoryElement.value; - toggleCategoryQuery.mutate({ category }).then(); + toggleCategoryQuery.mutate({ category }).then(); - categoryElement.value = ''; + categoryElement.value = ""; }; // 8.5827814569536423841e0 |